/*
 * Licensed to the 南京汇海交通科技有限公司
 *
 * Copyright (c) 2025.
 * All rights reserved.
 *
 * 本软件属南京汇海交通科技有限公司所有，在未获得南京汇海交通科技有限公司正式授权情况下，任何企业和个人，不能获取、阅读、安装、传播本软件涉及的任何受知识产权保护的内容。
 */
package com.chframework.common.thread.properties;

import lombok.Getter;
import lombok.Setter;
// import org.springframework.boot.context.properties.ConfigurationProperties;
// import org.springframework.stereotype.Component;

/**
 * 管理线程池配置读取
 * <p>
 * 再重新强调一次，线程池的参数配置一定要参考生产服务器的实际硬件参数，不能写死在代码里面，这里给出最优配置方案：
 * (1)CPU密集型：核心线程数 = CPU核数 + 1
 * (2)IO密集型：核心线程数 = CPU核数 x 2
 * (3)最大线程数 = CPU核数 x 2 + 1
 */
@Getter
@Setter
// @Component
// @ConfigurationProperties(prefix = "application.threadpool")
public class ThreadPoolProperty {

    /**
     * 需要显式声明 使用自定义线程池配置
     */
    private Boolean enable = true;
    /**
     * 线程工厂创建线程的名称前缀
     */
    private String threadPrefix;
    /**
     * 核心线程数
     */
    private Integer corePoolSize;
    /**
     * 最大线程数
     */
    private Integer maxPoolSize;
    /**
     * 线程活跃时间
     */
    private Integer keepAliveTime;
    /**
     * 队列容量
     */
    private Integer queueCapacity;

}
